A database is a collection of related information stored in a structured format. A database can consist of one or more tables of information that are related in some way. A table is a single store of related information. A table may consist of records, where each record is made up of a number of fields.
A database management system (DBMS) maintains and manages the data stored in the databases. Management includes storing, deleting, retrieving and updating the data. Typically, data stored in a database includes plain values (e.g., numbers and alphanumeric strings) and complex objects, such as images, documents and spatial data. The DBMS typically is hosted by a server, which may be referred to as a “database server,” that is accessible by a plurality of client systems (or simply referred to as “clients”) via a network.
The database servers, which may hold the databases, may receive requests for data from the clients and retrieve the requested data from the databases and return the requested data to the clients. In order to handle a high level of requests from the clients, additional servers may be added, such as forming what is referred to as a “server farm,” thereby bringing more computing power online. However, in order to store additional data, the databases are often partitioned or divided to accommodate the expanding load. Unfortunately, partitioning or dividing a database is time consuming and can also affect performance and accessibility. For example, partitioning a database may affect the uptime guarantees stated in the applicable service level agreements. In another example, the application (e.g., business application) residing on the client attempting to access data may also be impacted, such as the manner in the way it accesses records.
Furthermore, in partitioning a database, the individual database tables may be distributed across several databases which increases the difficulty of managing the resources in the server farm. Additionally, each database vendor handles the partitioning of its database in differing ways. As a result, in a mixed vendor environment, the database administrator must understand each database server's unique characteristics in order to effectively scale each database.
Hence, there is currently not an effective solution in managing server load capability in the context of a database environment to accommodate changes in the load (e.g., expanding load).